#pragma once 
#include "Protocol.hpp"
#include <iostream>

class Cal
{
public:
    Response Excute(Request& req)
    {
        Response resp(0,0);
        switch(req.Oper())
         {
            case '+':
                resp.SetResult(req.X() + req.Y());
                break;
            case '-':
                resp.SetResult(req.X() - req.Y());
                break;
            case '*':
                resp.SetResult(req.X() * req.Y());
                break;
            case '/':
                if(req.Y() == 0)
                    resp.SetCode(1); //除零错误
                else
                    resp.SetResult(req.X() / req.Y());
                break;
            case '%':
                if(req.Y() == 0)
                    resp.SetCode(2); //余零错误
                else
                    resp.SetResult(req.X() % req.Y());
                break;    
            default:
                resp.SetCode(3); //传参错误
                break;
         }   
    return resp;
    }
};